package com.musemun.service.function;

import com.musemun.pojo.Crlendifo;
import com.musemun.pojo.Cropifo;
import com.musemun.pojo.Lendcontact;
import com.musemun.pojo.Vo.CrLendVo;
import com.musemun.pojo.Vo.PagingVo;

import java.io.InputStream;
import java.util.Date;
import java.util.List;

/**
 * @description:
 *       外借接口
 * @author winner
 * @date 2020/4/19
 */
public interface LendContact {

    public boolean insertBatch(InputStream inputStream);

    public CrLendVo findById(long crNo);

    /**
     *  可分页
     *  当pageNum == pageNum == 0时不分页
     * @param name
     * @param pageNum
     * @param pageSize
     * @return
     */
    public PagingVo findByName(String name, int pageNum, int pageSize);

    /**
     * 可分页
     * 当pageNum == pageNum == 0时不分页
     * @param pageNum
     * @param pageSize
     * @return
     */
    public PagingVo selectAll(int pageNum, int pageSize);

    /**
     *
     * @param crlendifo  文物外借详情表
     * @param lendcontact 外借联系人表
     * @param cropifo 文物操作记录表
     * @return 成功 true
     */
    public boolean insert(Crlendifo crlendifo, Lendcontact lendcontact, Cropifo cropifo);

    public boolean delete(long crNo);

    /**
     *GET请求
     * @param crNo
     * @return [外借联系人表,文物外借详情表]
     */
    public CrLendVo update(long crNo);

    /**
     * POST请求
     * @param crlendifo  文物外借详情表
     * @param lendcontact 外借联系人表
     * @return
     */
    public boolean update(Crlendifo crlendifo, Lendcontact lendcontact);

    /**
     * 根据外借时间查询
     *      * 1： 查询小于lefttime
     *      * 2： 查询lefttime-righttime之间
     *      * 3： 查询大于lefttime
     * @param leftTime
     * @param rightTime
     * @param operate
     * @return
     */
    public List<Crlendifo> findByTime(Date leftTime, Date rightTime, int operate);


}
